package com.pzh.assignment.common.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 统一结果封装
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result implements Serializable {
    private int code;       //响应状态  （200表示成功，400表示异常）
    private String message;     //结果消息
    private Object data;    //结果数据

    /**
     * 默认请求成功方法
     * @param code  响应状态  （200表示成功，400表示异常）
     * @param message   结果消息
     * @param data  结果数据
     * @return
     */
    public static Result success(int code, String message, Object data){
        return new Result(code, message, data);
    }

    /**
     * 重载请求成功方法
     * @param data  结果数据
     * @return
     */
    public static Result success(Object data){
        return new Result(200, "操作成功", data);
    }

    /**
     * 默认请求失败方法
     * @param code
     * @param message
     * @param data
     * @return
     */
    public static Result fail(int code, String message, Object data){
        return new Result(code, message, data);
    }


    public static Result fail(String message, Object data){
        return new Result(400, message, data);
    }

    public static Result fail(String message){
        return new Result(400, message, null);
    }




}
